Reverse Engineering Techniques for Lisp Systems
نویسندگان
چکیده
Reverse engineering software systems, especially large legacy systems, is a difficult task, because of the sheer size and complexity of the systems. Many approaches have been developed to analyze software systems written in different languages. These approaches employ vary techniques like metrics or visualizations, and typically rely on parsing the system and on extracting a model that conforms to a meta-model. However, no existent meta-model could fulfill the requirements for analyzing Lisp systems, so we developed the FAMIX-Lisp meta-model, as an extension of an existing meta-model. Our FAMIX-Lisp meta-model extends the initial meta-model with capabilities to model Lisp systems by adding new entities that are unique to Lisp, like Macros and CLOS entities. Software visualization has been widely used by the reverse engineering research community during the past two decades, becoming one of the major approaches in reverse engineering. In our thesis we also propose a set of new visualizations for Lisp systems, developed to underline the differences of the language and to help understand and browse complex Lisp systems, namely: • The Class-Method Relation View is a visual way of supporting the understanding of the relation between classes and methods in a object-oriented Lisp program; • The Class Types View is a visual way of identifying different types of classes, based on their structure (the attributes to methods ratio); • The Programming Style Distribution View is a visual way of identifying the programming paradigm used in a program and their distribution over the system’s packages; • TheGeneric ConcernsView is a visual way of identifying different cross-cutting concerns in a system by visualizing the spread of generic functions in the system. The target of our views is to visualize very large Lisp systems, for which we want to obtain an initial understanding of their structure and their properties, which helps to guide software developers in the first steps of the reverse engineering process of an unknown system.
منابع مشابه
An Evolutionary Knowledge-Based Framework for Reverse and Forward Engineering
The paper describes a knowledge-based framework for the development of program reverse and forward engineering. The substrate for this framework is an object-oriented environment for knowledge-based applications (XRL) written in Common Lisp. The approach starts from the idea that forward and reverse engineering are evolutive, knowledge intensive activities. Regarding the development of knowledg...
متن کاملA knowledge-based architecture for intelligent design support
The development of a knowledge-based design support system is a lengthy and costly process because various computational techniques necessary for intelligent design support are not readily available in a knowledge-based environment. The systematisation of design knowledge needs combined eorts from designers and knowledge engineers. Existing knowledge-based system development tools oer limited...
متن کاملThe Deductive Synthesis of Imperative LISP Programs
A framework is described for the automatic synthesis of imperative programs, which may alter data structures and produce destructive side effects as part of their intended behavior. A program meeting a given specification is extracted from the proof of a theorem in a variant of situational logic, in which the states of a computation are explicit objects. As an example, an in-place reverse progr...
متن کاملA New Thermodynamic Approach for Protein Partitioning in Reverse Micellar Solution
Reverse micellar systems are nanofluids with unique properties that make them attractive in high selectivity separation processes, especially for biological compounds. Understanding the phase behavior and thermodynamic properties of these nanosystems is the first step in process design. Separation of components by these nanosystems is performed upon contact of aqueous and reverse micellar phase...
متن کاملReverse Engineering of Network Software Binary Codes for Identification of Syntax and Semantics of Protocol Messages
Reverse engineering of network applications especially from the security point of view is of high importance and interest. Many network applications use proprietary protocols which specifications are not publicly available. Reverse engineering of such applications could provide us with vital information to understand their embedded unknown protocols. This could facilitate many tasks including d...
متن کامل